package com.elead.oa.service.employee;

import com.baomidou.mybatisplus.extension.service.IService;
import com.elead.oa.entity.Employee;
import com.elead.oa.vo.EmployAttendanceVo;
import com.elead.oa.vo.EmployDepartmentVo;
import com.elead.oa.vo.LoginVo;

import java.util.List;

/**
 * 考勤管理
 * IEmployeeService
 * 创建人:xiaozuolin
 * 创建时间：2021年09月29日 10:06:21
 * @author xiaozuolin
 * @version 1.0.0
 */
public interface IEmployeeService extends IService<Employee> {

    /**
     * 员工登陆
     * @param loginVo
     * @return
     */
    Employee logined(LoginVo loginVo);

    /**
     * @param id
     * @return EmployAttendanceVo <br/>
     * @since 1.0.0 <br/>
     */
    List<EmployAttendanceVo> getAllAttendanceByEmployId(int id);

    /**
     * 查询所有员工及员工所在的部门
     * @return
     */
    List<EmployDepartmentVo> employQuery();

    /**
     * 根据员工id查询员工信息及对应的部门
     * @param id
     * @return
     */
    EmployDepartmentVo getEmployDepartmentVoById(int id);

    /**
     * 考勤管理保存&修改
     * 方法名：saveupdateEmployee<br/>
     * 创建人：xiaozuolin <br/>
     * 时间：2021年09月29日 10:06:21<br/>
     *
     * @param employee
     * @return Employee <br/>
     * @throws <br/>
     * @since 1.0.0 <br/>
     */
    Employee saveupdateEmployee(Employee employee);


    /**
     * 考勤管理删除
     * 方法名：deleteEmployeeById<br/>
     * 创建人：xiaozuolin <br/>
     * 时间：2021年09月29日 10:06:21<br/>
     *
     * @param id
     * @return int <br/>
     * @throws <br/>
     * @since 1.0.0 <br/>
     */
    int deleteEmployeeById(Integer id);


    /**
     * 考勤管理查看明细
     * 方法名：getEmployeeById<br/>
     * 创建人：xiaozuolin <br/>
     * 时间：2021年09月29日 10:06:21<br/>
     *
     * @param id
     * @return Employee <br />
     * @throws <br/>
     * @since 1.0.0<br />
     */
    Employee getEmployeeById(Integer id);

}